package com.zrrd.straw1.service;

import com.github.pagehelper.PageInfo;
import com.zrrd.straw1.entity.Question;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zrrd.straw1.service.impl.ServiceException;
import com.zrrd.straw1.vo.QuestionVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zrrd
 * @since 2024-03-03
 */
public interface IQuestionService extends IService<Question> {
    //通过 id 查询问题详情
    Question getQuestionById(Integer id);

    //考虑问题太多，需要分页查询
    //1.返回的问题集合封装到分页对象中
    //2.需要给出分页条件
    PageInfo<Question> getQuestionsByTeacherName(String username,
                                             Integer pageNum, Integer pageSize );

    //查询指定用户的问题数量
    Integer countQuestionsByUserId( Integer userId );

    //定义提交问题业务逻辑，要求控制器使用方法的条件：提供 vo 和 登录用户名
    void saveQuestion( QuestionVo questionVo, String name) throws ServiceException;


    //获取用户的所有问题，定义方法的调用条件，返回的结果
    //List<Question> getQuestions(String username);

    //以前是返回所有的问题列表，现在是返回某页问题列表
    //既然是分页，那么需要提供 2 个查询条件，第几页，每页显示几条信息。
    PageInfo<Question> getQuestions(String username, Integer pageNum, Integer PageSize );
}
